package com.youzan.open.sdk.gen.v1_0_0.model;

import com.google.common.collect.ArrayListMultimap;
import com.google.common.collect.Maps;
import com.google.common.collect.Multimap;
import com.youzan.open.sdk.model.APIParams;
import com.youzan.open.sdk.model.ByteWrapper;
import com.youzan.open.sdk.model.FileParams;
import java.util.List;
import java.util.Map;
import java.util.Date;

public class YouzanFenxiaoTradeRefundGetParams implements APIParams, FileParams  {

    /**
     * 店铺kdtId，非必填
     */
    private Long kdtId;
    /**
     * 是否包含协商记录
     */
    private Boolean optionIncludeConsultMessage;
    /**
     * 是否包含退款介入记录
     */
    private Boolean optionIncludeInvolve;
    /**
     * 是否包含物流记录
     */
    private Boolean optionIncludeLogistics;
    /**
     * 是否包含操作记录
     */
    private Boolean optionIncludeOperationLog;
    /**
     * 是否包含退款资金流水记录
     */
    private Boolean optionIncludeRefundFund;
    /**
     * 退款单号
     */
    private String refundId;

    public void setKdtId(Long kdtId) {
        this.kdtId = kdtId;
    }

    public Long getKdtId() {
        return this.kdtId;
    }

    public void setOptionIncludeConsultMessage(Boolean optionIncludeConsultMessage) {
        this.optionIncludeConsultMessage = optionIncludeConsultMessage;
    }

    public Boolean getOptionIncludeConsultMessage() {
        return this.optionIncludeConsultMessage;
    }

    public void setOptionIncludeInvolve(Boolean optionIncludeInvolve) {
        this.optionIncludeInvolve = optionIncludeInvolve;
    }

    public Boolean getOptionIncludeInvolve() {
        return this.optionIncludeInvolve;
    }

    public void setOptionIncludeLogistics(Boolean optionIncludeLogistics) {
        this.optionIncludeLogistics = optionIncludeLogistics;
    }

    public Boolean getOptionIncludeLogistics() {
        return this.optionIncludeLogistics;
    }

    public void setOptionIncludeOperationLog(Boolean optionIncludeOperationLog) {
        this.optionIncludeOperationLog = optionIncludeOperationLog;
    }

    public Boolean getOptionIncludeOperationLog() {
        return this.optionIncludeOperationLog;
    }

    public void setOptionIncludeRefundFund(Boolean optionIncludeRefundFund) {
        this.optionIncludeRefundFund = optionIncludeRefundFund;
    }

    public Boolean getOptionIncludeRefundFund() {
        return this.optionIncludeRefundFund;
    }

    public void setRefundId(String refundId) {
        this.refundId = refundId;
    }

    public String getRefundId() {
        return this.refundId;
    }


    public Map<String, Object> toParams() {
        Map<String, Object> params = Maps.newHashMap();
        if (kdtId != null) {
            params.put("kdt_id", kdtId);
        }
        if (optionIncludeConsultMessage != null) {
            params.put("option_include_consult_message", optionIncludeConsultMessage);
        }
        if (optionIncludeInvolve != null) {
            params.put("option_include_involve", optionIncludeInvolve);
        }
        if (optionIncludeLogistics != null) {
            params.put("option_include_logistics", optionIncludeLogistics);
        }
        if (optionIncludeOperationLog != null) {
            params.put("option_include_operation_log", optionIncludeOperationLog);
        }
        if (optionIncludeRefundFund != null) {
            params.put("option_include_refund_fund", optionIncludeRefundFund);
        }
        if (refundId != null) {
            params.put("refund_id", refundId);
        }
        return params;
    }

    public Multimap<String, ByteWrapper> toFileParams() {
        Multimap<String, ByteWrapper> params = ArrayListMultimap.create();

            return params;
    }


}